package com.ly.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ly.common.core.bean.R;
import com.ly.common.core.bean.dto.CommonBatchUpdateDTO;
import com.ly.system.system.bean.entity.SysRole;
import org.apache.ibatis.annotations.Param;

/**
 * 角色-服务
 *
 * @author jeecg
 * @since 2018-12-19
 */
public interface ISysRoleService extends IService<SysRole> {

    /**
     * 查询-id
     */
    R getId(String id);

    /**
     * 列表
     *
     * @param entity
     * @return
     */
    R getList(SysRole entity);

    /**
     * 分页
     */
    R getPage(SysRole entity, Page<SysRole> page);

    /**
     * 新增
     */
    R add(SysRole entity);

    /**
     * 修改
     */
    R edit(SysRole entity);

    /**
     * 删除-id
     */
    R delete(String id);

    /**
     * 批量删除
     */
    R deleteBatch(String ids);

    /**
     * 批量新增或修改
     */
    R updateBatch(CommonBatchUpdateDTO<SysRole> dto);

    /**
     * 查询角色是否存在不做租户隔离
     *
     * @param roleCode
     * @return
     */
    SysRole getRoleNoTenant(@Param("roleCode") String roleCode);

    /**
     * 验证是否为admin角色
     *
     * @param ids
     */
    void checkAdminRoleRejectDel(String ids);
}
